﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace A91数组排序算法
{
    class Program
    {
        //冒泡排序
        static void Main1(string[] args)
        {
            int[] array = { 8,7, 1, 5, 2, 3 };
            for (int j = 0; j < array.Length-1; j++)//j表示冒泡次数
            {
                //一次冒泡
                for (int i = 0; i < array.Length - 1-j; i++)
                {
                    if (array[i] > array[i + 1])//如果当前元素比后面一个还大,就交换位置
                    {
                        int temp = array[i];
                        array[i] = array[i + 1];
                        array[i + 1] = temp;
                    }
                }
            }
        }


        //选择排序
        static void Main(string[] args)
        {
             int[] array = { 8, 7, 1, 5, 2, 3 };

            //重置指定位置开始选出最小元素的索引
            for (int sIndex = 0; sIndex < array.Length-1; sIndex++)
            {
                //int sIndex = 0;//开始的位置
                int mIndex = sIndex;//假设开始位置就是最小的
                for (int i = sIndex + 1; i < array.Length; i++)
                {
                    if (array[i] < array[mIndex])
                    {
                        mIndex = i;
                    }
                }
                //代码执行到这里mIndex肯定是最小元素的索引
                int temp = array[sIndex];
                array[sIndex] = array[mIndex];
                array[mIndex] = temp;
            }
        }
    }
}
